Sample Programs > Sample Codes (Programming AC Output)
Sample Programs
Sample code (Programming AC Output)
vs = viPrintf( vi, "*RST\n"); 'Resets the instrument
vs = viPrintf( vi, ":OUTP:COUP AC\n"); 'Selects AC coupling
vs = viPrintf( vi, ":VOLT:RANG 135\n"); 'Selects LOW (135V); range
double dVoltMin, dVoltMax;
vs = viPrintf( vi, ":VOLT? MIN\n"); 'Queries VOLT min
vs = viScanf( vi, "%lf", &dVoltMin);
vs = viPrintf( vi, ":VOLT? MAX\n"); 'Queries VOLT max
vs = viScanf( vi, "%lf", &dVoltMax);
double dFreqMin, dFreqMax;
vs = viPrintf( vi, ":FREQ? MIN\n"); 'Queries FREQ min
vs = viScanf( vi, "%lf", &dFreqMin);
vs = viPrintf( vi, ":FREQ? MAX\n"); 'Queries FREQ max
vs = viScanf( vi, "%lf", &dFreqMax);
vs = viPrintf( vi, ":VOLT 110\n"); 'Sets 110V
vs = viPrintf( vi, ":FREQ 55\n"); 'Sets 55Hz
vs = viPrintf( vi, ":OUTP ON\n"); 'Turns the output on
long lErr;
char szErr[256];
vs = viPrintf( vi, ":SYST:ERR?\n"); 'Queries instrument error
vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);
Sample code (Programming DC Output)
vs = viPrintf( vi, "*RST\n"); 'Resets the instrument
vs = viPrintf( vi, ":OUTP:COUP DC\n"); 'Selects DC coupling
vs = viPrintf( vi, ":VOLT:RANG 135\n"); 'Selects LOW (135V); range
double dVoltMin, dVoltMax;
vs = viPrintf( vi, ":VOLT:OFFS? MIN\n"); 'Queries VOLT min
vs = viScanf( vi, "%lf", &dVoltMin);
vs = viPrintf( vi, ":VOLT:OFFS? MAX\n"); 'Queries VOLT max
vs = viScanf( vi, "%lf", &dVoltMax);
vs = viPrintf( vi, ":VOLT:OFFS +40\n"); 'Sets 40V
vs = viPrintf( vi, ":OUTP ON\n"); 'Turns the output on
long lErr;
char szErr[256];
vs = viPrintf( vi, ":SYST:ERR?\n"); 'Queries instrument error
vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);
Sample code (Triggering Output Changes)
vs = viPrintf( vi, "*RST\n"); 'Resets the instrument
vs = viPrintf( vi, ":OUTP:COUP AC\n"); 'Selects AC coupling
vs = viPrintf( vi, ":VOLT:RANG 135\n"); 'Selects LOW (135V); range
vs = viPrintf( vi, ":VOLT 110\n"); 'Sets 110V
vs = viPrintf( vi, ":FREQ 55\n"); 'Sets 55Hz
vs = viPrintf( vi, ":OUTP ON\n"); 'Turns the output on
vs = viPrintf( vi, ":VOLT:MODE STEP\n"); 'Selects STEP mode
vs = viPrintf( vi, ":FREQ:MODE STEP\n"); 'Selects STEP mode
vs = viPrintf( vi, ":VOLT:TRIG 100\n"); 'Sets 100V when triggered
vs = viPrintf( vi, ":FREQ:TRIG 50\n"); 'Sets 50Hz when triggered
vs = viPrintf( vi, ":TRIG:SEQ1:SOUR BUS\n"); 'Selects BUS trigger
vs = viPrintf( vi, ":INIT:SEQ1\n"); 'Initiates
vs = viPrintf( vi, ":TRIG:SEQ1:IMM\n"); 'Gives a trigger
long lErr;
char szErr[256];
vs = viPrintf( vi, ":SYST:ERR?\n"); 'Queries instrument error
vs = viScanf( vi, "%ld,\"%[^\"]", &lErr, szErr);
Sample code (Easy Measurement)
double dVoltAC;
double dCurrAC;
double dCurrMax;
double dCurrMaxHold;
double dCurrCrestFactor;
double dPowACReal;
double dPowACApparent;
double dPowACReactive;
double dPowACPF;
' Query VOLT AC
vs = viPrintf( vi, ":MEAS:VOLT:AC?\n");
vs = viScanf( vi, "%lf", &dVoltAC);
' Query CURR AC
vs = viPrintf( vi, ":MEAS:CURR:AC?\n");
vs = viScanf( vi, "%lf", &dCurrAC);
' Query CURR Max
vs = viPrintf( vi, ":MEAS:CURR:AMPL:MAX?\n");
vs = viScanf( vi, "%lf", &dCurrMax);
' Query CURR Max Hold
vs = viPrintf( vi, ":MEAS:CURR:AMPL:MAX:HOLD?\n");
vs = viScanf( vi, "%lf", &dCurrMaxHold);
' Query CURR Crest Factor
vs = viPrintf( vi, ":MEAS:CURR:CRES?\n");
vs = viScanf( vi, "%lf", &dCurrCrestFactor);
' Query POW AC Real
vs = viPrintf( vi, ":MEAS:POW:AC:REAL?\n");
vs = viScanf( vi, "%lf", &dPowACReal);
' Query POW AC Apparent
vs = viPrintf( vi, ":MEAS:POW:AC:APP?\n");
vs = viScanf( vi, "%lf", &dPowACApparent);
' Query POW AC Reactive
vs = viPrintf( vi, ":MEAS:POW:AC:REAC?\n");
vs = viScanf( vi, "%lf", &dPowACReactive);
' Query POW AC Power Factor
vs = viPrintf( vi, ":MEAS:POW:AC:PFAC?\n");
vs = viScanf( vi, "%lf", &dPowACPF);
Sample code (Advanced Measurement)
double dVoltAC;
double dCurrAC;
double dCurrMax;
double dCurrMaxHold;
double dCurrCrestFactor;
double dPowACReal;
double dPowACApparent;
double dPowACReactive;
double dPowACPF;
' Set up OPC event causing SRQ generation
vs = viPrintf( vi, "*ESE 1;*SRE 32;*CLS\n");
' Initiate a new measurement
vs = viPrintf( vi, ":TRIG:SEQ3:SOUR IMM\n");
vs = viPrintf( vi, ":INIT:SEQ3\n");
vs = viPrintf( vi, "*OPC\n");
' Wait for SRQ generation
unsigned short uStb;
do {
vs = viReadSTB( vi, &uStb);
} while((uStb & 0x40) == 0);
' Query VOLT AC
vs = viPrintf( vi, ":FETC:VOLT:AC?\n");
vs = viScanf( vi, "%lf", &dVoltAC);
' Query CURR AC
vs = viPrintf( vi, ":FETC:CURR:AC?\n");
vs = viScanf( vi, "%lf", &dCurrAC);
' Query CURR Max
vs = viPrintf( vi, ":FETC:CURR:AMPL:MAX?\n");
vs = viScanf( vi, "%lf", &dCurrMax);
' Query CURR Max Hold
vs = viPrintf( vi, ":FETC:CURR:AMPL:MAX:HOLD?\n");
vs = viScanf( vi, "%lf", &dCurrMaxHold);
' Query CURR Crest Factor
vs = viPrintf( vi, ":FETC:CURR:CRES?\n");
vs = viScanf( vi, "%lf", &dCurrCrestFactor);
' Query POW AC Real
vs = viPrintf( vi, ":FETC:POW:AC:REAL?\n");
vs = viScanf( vi, "%lf", &dPowACReal);
' Query POW AC Apparent
vs = viPrintf( vi, ":FETC:POW:AC:APP?\n");
vs = viScanf( vi, "%lf", &dPowACApparent);
' Query POW AC Reactive
vs = viPrintf( vi, ":FETC:POW:AC:REAC?\n");
vs = viScanf( vi, "%lf", &dPowACReactive);
' Query POW AC Power Factor
vs = viPrintf( vi, ":FETC:POW:AC:PFAC?\n");
vs = viScanf( vi, "%lf", &dPowACPF);